#include <vector>
#include <iostream>
#include <bitset>

using namespace std;

/**
 * 数量不定的模板参数
 *
 * @tparam T
 * @tparam Types
 * @param firstArg
 * @param args
 */
void print() {
    cout << "最后的结束调用" << endl;
}

template<typename T, typename... Types> //特化
//接收任何个数的参数类型  ...包
void print(const T &firstArg, const Types &... args) { //接收任意个数的参数 并且类型也是任意的
    cout << firstArg << endl;
    cout << sizeof...(args) << endl;
    print(args...); //没有参数调用上面的print
};

template<typename... Types> //泛化
void print(const Types &... args) { //接收任意个数的参数 并且类型也是任意的
    cout << sizeof...(args) << endl;
};

int main() {
    //cout << bitset<16>(377) << endl;
    print(7.5, "hello", bitset<16>(377), 42);

    return 0;
}